Skip to content

pc 26.2: attributes, 0-based sounds, vanilla loginPacket and loot - #1344

Open
Cyverno wants to merge 5 commits into
PrismarineJS:pc_26_2from
Cyverno:pc26.2-data-fixes
Open

Cyverno wants to merge 5 commits into
PrismarineJS:pc_26_2from
Cyverno:pc26.2-data-fixes

Conversation

@Cyverno

@Cyverno Cyverno commented Oct 30, 2026

Copy link
Copy Markdown

Replaces #1339, as asked in #1219. This is based on the current pc_26_2 (282f19b, with latest master) and contains only the 26.2 changes.

Changes

Compared with #1339, I dropped the minecraft:color to minecraft:team_color command argument rename, following the updated naming guidance in copilot-instructions.md. The id is unchanged, so the old name still decodes correctly.

Testing

On this branch 26.1 keeps its yaml in data/pc/26.1, which the master merges don't update, so it had fallen behind master's data/pc/latest/proto.yml (PrismarineJS#1254, PrismarineJS#1278, PrismarineJS#1295) while 26.1/protocol.json already matched master. Copying master's yaml fixes the 'protocol.json is desynced from yaml' test; npm run build leaves protocol.json unchanged.
minecraft:attribute has 40 entries in 26.2 (checked against the 26.2
server's registries report). air_drag_modifier, below_name_distance,
bounciness, friction_modifier and name_tag_distance are inserted in
registry order, so without them every entity_update_attributes key from
id 0 on decoded as its neighbour.
node-minecraft-protocol turns the packet's holder value into the
registry id and mineflayer indexes registry.sounds by it, so 1-based ids
resolve every registry sound to its neighbour (the same fix PrismarineJS#1316 makes
for 1.14 - 26.1). Regenerated from the 26.2 registries report; names and
order are unchanged.
Captured by node-minecraft-protocol's client test against the vanilla
26.2 server. The previous file was 26.1's registries with onlineMode
added, so it lacked the new minecraft:sulfur_cube_archetype registry,
the sulfur_cube_hot damage type and the bounce jukebox song, and kept
26.1's enchantment predicates and timeline values.

Every registry entry was compared with the 26.2 server jar's datapack
JSON: the only differences are the fields vanilla does not sync to
clients (spawn_conditions, carvers, gameplay attributes and tracks).
Extracted from the 26.2 server jar's loot tables with
minecraft-jar-extractor's extraction and prismarine-loottable master
(which has PrismarineJS/prismarine-loottable#15). The same run on the
26.1.2 jar reproduces the 26.1 files from PrismarineJS#1312 entry for entry, so 26.2
follows the same conventions.

The previous files were the 1.20 tables plus the new 26.2 blocks, so
they still named chain and grass and lacked everything added since 1.20.
26.2 adds loot for the 28 sulfur and cinnabar blocks and the sulfur cube;
no existing table changed.
Comment thread data/pc/26.1/proto.yml
Comment on lines +2496 to +2498
hand: varint =>
- main_hand
- off_hand

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why these changes?

Comment thread data/pc/26.1/proto.yml
Comment on lines +3784 to +3785
- main_hand
- off_hand

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants